-
Notifications
You must be signed in to change notification settings - Fork 532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[OCI] Support OCI Object Storage #4501
base: master
Are you sure you want to change the base?
Conversation
@Michaelvll @cblmemo Hi Zhanghao & Tianxia, Ask for your support to review/someone else to review the PR. Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this amazing work @HysunHe ! Left some discussions :))
@cblmemo Thanks for the prompt review. All points are addressed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! It looks good to me. Please let me know when you passed related smoke test and it should be ready to go ;)
assert self.name == data_utils.split_oci_path(self.source)[0], ( | ||
'OCI Bucket is specified as path, the name should be ' | ||
'the same as OCI bucket.') | ||
else: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
iiuc this source can be a local dir as well? and we should support it?
remote_path = oos_path | ||
# If the remote path is /bucket_name, we need to | ||
# remove the leading / | ||
remote_path = remote_path.lstrip() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remote_path = remote_path.lstrip() | |
remote_path = remote_path.lstrip('/') |
should this removing /
?
This is the implementation of the OCI Object Storage store (Re-submit).
It is an usually solid requirement for those using SkyPilot with OCI, otherwise user has to enable other supported cloud (with buckets) to leverage its cloud storage for data sync, for example, sky serve require cloud storage to sync workdir.
Actually I have implemented and used the OCI Object Storage with SkyPilot quite a long time (mainly for POC projects), now submit the PR to merge the code to the repo because there are requirements from other users.
For documentation to add OCI store, we can do it later after this PR.
sky launch -y -c smoke_test --cloud oci --num-nodes 2 examples/oci/oci-mounts.yaml
Tested (run the relevant ones):
bash format.sh
pytest tests/test_smoke.py
pytest tests/test_smoke.py::test_oci_mounts
conda deactivate; bash -i tests/backward_compatibility_tests.sh